package com.czk.springboot.reactive.reactor.flux;

import reactor.core.publisher.Flux;

import java.time.Duration;

/**
 * 多个元素
 */
public class FluxDemo {

    public static void main(String[] args) {

        // 多元素流
        Flux<Integer> just = Flux.just(1, 2, 3, 4, 5)
                // 事件感知api，当留发生后，触发一个回调，系统定义好的钩子函数
                .delayElements(Duration.ofSeconds(1)) // 每秒一个
                .doOnComplete(()->{

            System.out.println("流结束了");
        })
                .doOnCancel(()->{
                    System.out.println("流已经被取消");
                })
        ;

        just.subscribe(System.out::println);

        just.subscribe(e-> System.out.println(e+"czk"));

        // 每秒产生一个从0开始的数字
        Flux<Long> flux = Flux.interval(Duration.ofSeconds(1));

        // 消费数据
        flux.subscribe(System.out::println);

        while (true){

        }

    }
}
